<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
<script>
    {
        // 声明
        async function fn(){

        }
        const fn2 = async function(){

        }
        setTimeout(async ()=>{

        });
        const obj = {
            async fn(){

            },
            fn2:async function(){

            },
            fn3:async ()=>{

            }
        }
    }
    {
        // async函数与普通函数调用有什么区别？
        // 1- 如果函数返回的是一个非Promise,那么得到的是Promise实例状态为成功，值为返回值
        // 2- 如果函数返回的是一个Promise,那么得到的是一个新的Promise实例，状态以及值与返回的Promise实例相同
        // 3- 如果函数中有异常，那么得到的是一个失败的promise
        const p1 = Promise.resolve(1);
        async function fn(){
            // return 2
            // return p1;
            throw "异常"
        }
        console.log(fn());
    }
</script>
</html>